home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 1
/
Merciful - Disc 1.iso
/
software
/
c
/
caligari
/
caligari.txt
next >
Wrap
Text File
|
1995-10-14
|
93KB
|
2,822 lines
CALIGARI BROADCAST
Octree Software introduces Caligari, 3D animation software for video and
design professionals. Three years of development, Caligari represents a
major innovation in 3D conceptual design and animation.
Written for the Amiga family of personal computers, Caligari is a powerful
tool for corporate presentations, industrial training, educational video,
conceptual design, advertising production, architectural design, commercial
movie production, broadcast and cable television production and other
commercial and artistic activities.
Caligari is a conceptual modeler which means that its intuitive real time
response enables the designer to do the initial conceptual stage of design
directly on the screen without the need for preliminary sketches on paper.
At the heart of the system is the unique, intuitive real time interface.
The interface is so easy to use a five year old can design simple objects
in a matter of minutes (and enjoy it too) and so powerful a professional
designer can finish a complex animation job in one day instead of the
several weeks it may now take.
Typically a designer will go through four phases in developing animation:
designing or selecting objects, setting a scene, developing choreography
and finally rendering the images to a video tape recorder ("VTR").
OBJECT DESIGN
First the designer builds or selects objects to be placed in the scene.
Objects may be selected from an object library, built from simple shapes or
created from two dimensional sketches. A large object library (including
cars, boats, and buildings) in included. Object libraries created with the
home version of Octree's software may also be used.
Complex objects may also be created by combining simple objects. A
comprehensive set of simple 3D shapes ("primitives") such as a cube, a
sphere and a cone is included, from which basic building blocks can be
chosen. These shapes can be moved, rotated and scaled proportionally or
along one or more axes both in global and local (object) space. Then they
can be glued together to create complex shapes.
Caligari Interface
The pictures below illustrate the commands typically used to create,
animate and view objects in the object design and scene composition
modules. The commands are intuitive and easy to remember. Commands are
selected from the menu with a mouse. Some functions, such as selection of
color hues are controlled by horizontal sliders - bars which may be moved
left or right with the mouse to increase or decrease the desired attribute.
The Navigation Menu is the main menu of Caligari. Menu choices are located
at the bottom of the screen. They are stackable i.e. the user can add or
subtract any menu choice as needed. If desired, all of the menu choices can
be eliminated for full screen display with the current function still
active.
Top, Side and Front views - Orthographical projections may be selected
enabling the user to position objects with a high degree of precision. By
selecting "zoom" and "translate" from the menu, the user can smoothly
magnify any part of a design up to the precision of the database which
provides the fine gradation of full floating point representation.
Move, Rotate and Scale - Each of these operations can be performed in real
time, without accessing a menu. Objects to be manipulated are selected
simply by pointing the mouse. These operations form the basis for
conceptual object design. On the picture above the rocket has been moved,
the sailboat rotated and the robot scaled.
Translate - This operation moves the eyepoint linearly in the world space.
Encircle - This operation moves the eye point along a spherical path with
the center on the currently highlighted object.
Pan rotates the eyepoint left or right and up or down without changing the
viewer's position in the world space.
Hierarchy - Caligari objects are fully hierarchial. This means that parts
of a complex object can be selected and manipulated absolutely or
relatively to the object itself. For example, in the picture above the
robot's arm has been selected and now can be easily pivoted around the
shoulder joint.
Each level of the hierarchy can be accessed by selecting frm the menu an up
or down arrow and pointing to the desired subobject with the mouse cursor.
The subobject can be glued or unglued for reuse in other objects.
Hierarchial flexibility is important because it is the only means to
incorporate parts of an object into a while in a way intuitive to the user.
Primitives - Primitives are basic shapes which may be combined to create
more complex objects. Because the primitives are used often, they are
represented by icons and can be instantly loaded using the mouse pointer.
Load - Save (not illustrated) These are scrollable directories for loading
and saving objects. They can be accessed with the mouse or keyboard.
Render - At any time a solid view of the objects can be obtained by
selecting "render" from the main menu. In the object module any part of a
solid object can be easily colored, due to the ability to select parts of
objects hierarchically.
The pallete can be modified by using horizontal sliders for hue, saturation
and value. This provides for an intuitive means to achieve a harmonious
relation between colors.
More comprehensive color manipulation is available in the scene module,
where in addition to color, diffuse and specular attributes can also be
specified.
Extruder - The user can draw two dimensional shapes by hand with the mouse
and then use the extruder to create a 3D shape by moving the 2D outline
through space.
The above objects (from left to right) were created using the "extrude",
"cone" and "spin" options from the extrude menu.
Scene - In the scene module, a complex environment can be created by
moving, rotating and scaling objects. Where applicable, functions in the
scene module and object design module work identically.
When the geometry of the scene seems right, lights can be placed in the
scene and a solid view of the scene can be obtained. In addition to
location and intensity, softness of a given light source can be specified.
Each object can be assigned values for diffuse and specular attributes.
In the picture at the top of the page you can see a top view of the scene.
notice that menus were removed to achieve full view of the scene.
Another way to create objects is to sweep two dimensional sketches through
3D space. This is done with the extruder. Caligari's powerful extruder can
manipulate complex shapes including concave polygons with holes.
In wireframe mode the designer can smoothly move objects or zoom in on any
particular detail of the design in perspective, top, side or front view
selections, all with real time response regardless of object complexity. At
any time a solid view of the object can be obtained simply by selecting
"render" from the menu.
Curves, polyhedra and complex objects can be instantly saved for later
recall. "Undo" is available for every operation performed.
SCENE COMPOSITION
Once objects have been selected or created, they are placed to create a
scene, such as a street, space station or room. Here, the overall look of
the design is obtained. The designer interactively colors the objects,
assigns their material attributes (such as shininess) and places one or
more lights in the scene. The intensity and softness of each light may be
set.
Caligari can display the scene in solid view with flat shaded surfaces
using buth diffuse and specular reflectance for the objects. Octree plans
to offer upgrades which will render smooth shaded surfaces.
Rendering time for a scene with 1,000 polygons is approximately 30 seconds
on a standard Amiga PC without a floating point accelerator board and
substantially faster with the optional board.
SCRIPT MODULE
Caligari provides an extraordinary degree of feedback for choreography with
its real time preview option. The designer writes a script using simple
commands such as move or rotate and then can see the result instantly in
wireframe form. The length of the script preview is unlimited.
RENDERING
The final rendering process is fully automatic. Once the designer is
satisfied with the objects, scene, lights, coloring and choreography,
Caligari will automatically render each frame in full color and record it
to the videotape. Transforming computer images to videotape requires an
optional VTR single frame controller. Rendering may be done at night
without the user present to maximize hardware value. Caligari supports a
variety of professional quality VTR's and also broadcast quality genlocks -
hardware devices for combining computer animation with live footage.
Caligari Hardware Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Computer
Amiga PC 500/1000/2000 with a minimum of 1 MB memory. 2-4 MB strongly
recommmended.
Monitor
Analog RGB or composite
Hardware Options
Single frame controller; floating point accelerator; broadcast quality
genlock
Resolution
736x482 pixels in wireframe mode
736x482 in solid view mode with 16 colors out of a palette of 4096
362x482 in solid view mode with 32 and 64 colors out of a palette of 4096
Caligari's sophisticated color compression techniques increase the number
of apparent colors and palettes above by a factor of four.
TABLE OF CONTENTS
1. Introduction............................................3
1a. Basic Environment..............................4
2. Main Structure and Mouse Operation......................5
3. Main....................................................6
4. Object Design...........................................7
4a. Base Menu......................................8
4b. Navigation.....................................9
4ba. Viewpoint Manipulation...............10
4bb. Object Manipulation..................15
4bc. Views................................20
4bd. Erase and Undo.......................21
4c. Status........................................27
4d. Tools.........................................28
4da. Glue/Unglue/Copy.....................29
4dc. Extruder.............................32
4e. Load..........................................43
4f. Save..........................................44
4g. Primitives....................................45
4h. Render........................................46
4ha. Color................................49
4i. ETC...........................................50
5. Scene Composition......................................62
5a. Base Menu.....................................63
5b. Tools.........................................64
5ba. Lights...............................66
5c. Load/Save.....................................67
5d. Render........................................69
5da. Color................................72
6. Script.................................................75
6a. Syntax........................................80
INTRODUCTION
Our world has three dimensions. Every day we perform a multitude of actions
requiring complex coordination in 3D without even thinking about them. Yet
existing software for 3D manipulation and animation is usually so difficult
to use that it requires special training. Only a few designers and artists
are willing and capable to undergo this cumbersome learning process.
Octree Software firmly believes that the future of personal computing is
three dimensional. 3D visualization is essential in many areas of human
activity, not the last one of which is the human communication. However,
for personal computers to fulfill this promise, it is necessary it create
much more innovative hardware and software.
Caligari is a new kind of a software tool. It enables the user to think
directly in 3D space instead of just transferring the designs from paper.
Because of this and because Caligari allows to move objects in real time
the user can create very complicated projects and complete these projects
in a fraction of time and cost necessary with current tools.
Caligari is for everybody who has a need for 3D visualization. This
includes corporate presentations, industrial video, interior and
architectural design, training applications, education and fine art.
Caligari will establish a new market for 3D conceptual design and animation
for those who waited for sophisticated and affordable tool. The wait is
over.
1a. BASIC ENVIRONMENT
Caligari's environment is designed to provide an unmatched user interface
in terms of ease and power of 3D design and animation. This has been
accomplished by adhering to a few basic design principles:
1. REAL TIME RESPONSE
The user should not have to wait several seconds for the program to react
to his actions. In Caligari all but the most complex operations are
executed in a fraction of a second.
2. 3D PARADIGM
Caligari does not incorporate a traditional window based environment.
Rather than looking at the window, user literally looks though a window
into a larger 3D environment. In Caligari the computer screen is a illusion
of 3D reality uncluttered with windows and menus.
3. TERMINOLOGY
Pictorial icons are generally avoided. They are only used to represent
spatial concepts such as 3D primitives. For symbolic concepts we use
English words. Rather than borrow terms from film language Caligari uses
consistend geometrical terminology.
4. EYEPOINT COORDINATE SYSTEM
Our everyday actions are simple because we are the center of our world. We
expect the mouse cursor to move up when our hand moves up even when at the
moment our world is upside down. We interpret all action in relation to
ourselves. Perceptually the sun rotates around the earth despite
Copernicus. Caligari is always trying to interpret user actions in the eye
coordinate system.
5. HIERARCHIAL OBJECT MANIPULATION
Caligari can manipulate objects either in world (global) space or in object
(local) space. Default is always local space (except for translation).
Caligari allows for intuitive manipulation of complex hierarchial objects.
For example a robot's arm if highlighted will rotate around the robot's
shoulder (in local space) unless the user specifies the world space (to
unglue and remove the arm).
2. MENU STRUCTURE AND MOUSE OPERATION
The first thing to note about the menus is their location. Caligari's menus
are located at the bottom of the screen resembling somewhat instrumental
panel of a car or airplane. They are comprised of horizontal strips. Rather
than hierarchical, they are stackable, i.e. they stack themselves on top of
each other as the user activates them. Using stackable menus, the user can
create a personalized working environment. Any selection from any visible
menu strip can be made instantly without going up or down the hierarchy.
When the user exits an environment such as the object module he will find
it in the same state upon return.
Selections from the menus are made by moving the mouse cursor on top of the
desired item and clicking the left mouse button. This will highlight the
menu item and activate the function the item performs.
When the cursor crosses the top menu strip into the 3D workspace the cursor
changed its shape. This is to indicate that now it relates to objects in
the workspace rather than menu items. If a button is depressed while the
cursor is in the work area, cursor disappears and currently selected
function starts to operate (i.e. object rotates around z axis). When the
button is released function stops operating and cursor appears again.
While menu strips automatically stack themselves on top of the menu when
activated, they can be selectively eliminated by selecting the close gadget
at the lower left side of the menu strip.
All of the menus can be made invisible by selecting the close gadget on the
base (bottom) menu. The whole screen becomes a 3D workspace now, with the
current function active. This way the user can position an object anywhere
on the screen with a completely uncluttered view.
The menus can be brought back by moving the cursor all the way to the top
of the screen and depressing a mouse button. If the cursor is not visible,
for example when viewing a solid view, a double click on right mouse button
will bring the menus back.
The default working configuration of the program is saved in a
configuration file. When the user changes a parameter, such as number of
segments for extrusion, he can save the current configuration, so that the
next time the program is loaded it will reflect the saved changes.
Caligari file menus are context sensitive i.e. LOAD menu will display only
available objects when activated in object design and available polygons
when called from the extruder. Additionally standard file requester enables
the user to see a whole directory as well as change the current directory.
This file requester is displayed whenever a SET PATH command is activated.
It is also displayed when the user decided to change the current scene
selecting LOAD WORKSPACE from main menu.
3. MAIN MENU
Main menu is displayed at the bottom of the title page when the program
loads. Its purpose is to allow the user to change the current environment
(throught the "Load Workspace" gadget), enter the Object Design and Scene
Composition and exit the program. There are also a few utilities accessible
from this menu.
The arrangement of gadgets in the Main menu is as follows:
Object Design Scene Design Load Workspace Utilities Quit
Object Design - Enter Object Design.
Scene Design - Enter Scene Design
Load Workspace - Change current scene. In Caligari a scene file contains a
description of the scene plus all the objects created for the scene (not
all of them have to be used). This means that if scene is changed, Object
Design will display a new set of objects in Load Object menu. This way if
scene is copied to a different disk it will include everything it needs to
properly work on another CPU.
Utilities - General purpose utilities. For now it only includes color bars.
Quit - Exit the program.
4. OBJECT DESIGN
The purpose of this module is to design complex geometrical objects such as
"chair", "house" or "camshaft". The user can access a large collection of
basic 3D solid objects in the object database. Included in the supplied
basic database is a library of primitives such as "cube", "cylinder",
"sphere", etc. With a click of a mouse button, these can be placed in the
environment on the screen.
Another click, and they can be squeezed, stretched, rotated or translated
to any other point in space. Simple objects can be then combined together
with the glue operator. The designer coula also draw a two dimentional
shape and rotate or extrude it in 3D. Using orthogonal views (top, front,
side), the designer can pan and zoom around the design and position parts
with a very high degree of precision. All the operations can be performed
in real time without a need for keyboard entry, unless it is specifically
desired.
Once a satisfactory object is designed, it can be named and saved to disk
to be used later to build scenes and animate them.
Objects created with the glue operation are fully hiearchial and any part
of a complex object can be accessed simply by selecting the hierarchy level
using up and down arrow and pointing to desired subobject. Once a subobject
is selected it will automatically move in relation to its immediate higher
node i.e. robot's arm will rotate around its shoulder joint.
Caligari opens into the object design module with base menu and navigation
menu present. The workspace is viewed in perspective with the encircle
(encirc) function active and the X-Y coordinate axes selected. The
selection of a function is indicated by an amber highlight of that
function.
4a. BASE MENU
The base menu is always present at the bottom of the screen both in Ojbect
Design and Scene Composition. It can be made invisible (along with the
other menus) by selecting its close gadget. It can be made visible again by
clicking the mouse all the way at the top of the screen.
The arrangement of gadgets in the base menu is as follows:
NAV STATUS TOOLS LOAD SAVE PRIM RENDER SCENE MAIN
These are major functional blocks in Caligari. When selected some of them
activate additional menu strips, some replace the existing menu setup, and
some open a completely new screen.
NAV - Navigation is the central part of Caligari's interface. It enables
the user to move in 3D environment and manipulate objects in it.
STATUS - Displays numerical data about current scene.
TOOLS - Contains GLUE, UNGLUE, EXTRUDE and COPY functions.
LOAD - Displays menu for loading objects into the workspace.
SAVE - Permits saving objects under user selected names.
PRIM - Displays iconic menu of primitive (basic) objects for instant
loading into the workspace.
RENDER - Displays current object as a solid, in color.
SCENE - Exits Ojbect Design and enters Scene Composition module.
MAIN - Exits Object Design into the main menu.
4b. NAVIGATION
The navigation menu is by far the most often used menu in Caligari. When
the program starts, navigation menu is the default selection for the
workspace.
In navigation menu the user can move around in 3D design work space and
manipulate objects in it. Because the user sees the perspectiv4e place in
the workspace, there is never any ambiguity as to which action is currently
performed.
The height of navigation menu is equal to two text lines.
On the left side of navigation menu are options for view selection. In the
middle are operations for object and eye manipulations. On the right side
are Undo and Erase gadget.
Most user actions are performed directly in perspective view. For precise
positioning the user can elect to display the workspace in three orthogonal
views, "Front", "Left", and "Top". Regardless of the projection, most
functions operate identically in either view.
Navigation menu works identically in the Object Design and Scene
Composition module. Many functions can be also performed from the keyboard
using the ETC submenu. This submenu also enables 3D grids for translation,
rotation and scaling of objects.
4ba. VIEWPOINT MANIPULATION
Viewpoint motion is the movement of the user in the environment. Viewpoint
motion always takes place in screen space i.e. it is relative to the user.
There are three gadgets on the navigation menu allowing the user to change
his or her position in the 3D world: "Move", which translates the viewpoint
in X, Y, and Z; "Encirc", which orbits the viewpoint; and "P/T", which
stands for "Pan/Tilt", which changes the angle of the viewing relative to
the ground plane without moving the viewpoint. Also, the user can change
focal length of the eye with the Zoom gadget.
One of the strengths of Caligari is that the user is always exactly aware
of his position in the world and also of the changes in this world.
Movement of the viewpoint is clearly indicated by perspective change of the
ground plane. While the viewpoint is moving, only the groundplane and the
selected object (if any) are visible with the rest of the scene removed
during the action. The scene will be rerendered in background color (green)
once the user lifts the finger from the mouse button.
The most important thing to remember is that when viewpoint changes its
position the wold world (all the objects in it) changes its appearance.
MOVE
Purpose:
To move the viewpoint linearly in the worldspace.
Procedure:
1. If the move function does not appear on the menu, select the Nav
function and it appears.
2. Select the "Move" function from the menu.
3. Select the desired axes for movement by clicking on X, Y and/or Z.
4. Move the mouse into the workspace, hold down the left mouse button and
move the viewpoint location accordingly.
Options:
x - move left or right
y - move up or down
z - move in or out
Note:
Left mouse button controls x and y axes, right button controls z axis.
ENCIR
Purpose:
To encircle point we are looking at. Eye moves on the surface of an
imaginary sphere around the selected object
Procedure:
1. Select the object about which the eye is to travel.
2. Select the "EnCir" option.
3. Move the mouse into the workspace, hold down the left mouse button and
move the mouse to encircle the objects.
Options:
x - turn left or right
y - turn up or down
z - turn sideways
Note:
Left mouse button controls x and y axes, right button controls z axis
(horizon). Unlike the move operation encircle enables to go around the
object and look back to the point where the user was originally.
P/T
Purpose:
Pan/tile changes the angle of the eye relative to the ground plane. The eye
can loop up or down, left or right and roll clockwise and counterclockwise.
Procedure:
1. If the function does not appear on the menu, select the Nav function and
it will appear.
2. Select the P/T function from the menu.
3. Select any combination of X, Y and/or Z to specify the axes for panning.
4. Move the cursor into the workspace, hold down the left mouse button and
move the mouse now to change the viewpoint angle accordingly.
Options:
x - turn left or right
y - turn up or down
z - turn sideways
Note:
Move left button simultaneously controls x and y, right button controls z.
In this operation the position of the viewpoint does not change. Pan / Tilt
is analogical to the same operations of a camera in film industry.
ZOOM
Purpose
Zoom changes the focal length of the eye. It can be adjusted from
"Tele-lens" to "Fish-eye".
Procedure:
1. Select the "Zoom" function from the menu.
2. Move the mouse into the workspace, hold down the left mouse button to
change the zoom accordingly.
Alternative:
1. Select Zoom.
2. Drag the horizontal slider next to zoom gadget to change the focal
length.
Note:
The horizontal slider also gives a visual indication of the zoom setting.
Zoom is different from the Move command in that that actual eye position
does not change.
In top, left and front view the Zoom (together with Move) enables extremely
precise positioning of objects. The user can move around the
two-dimensional view of the world and magnify the area of interest to
extremely high degree. Once the detail is magnified precise positioning of
objects is easy.
4bb. OBJECT MANIPULATION
Object manipulation consist of transition, rotation or scaling of a
wireframe object. First an object has to be selected using the "Pick"
function. It can then be manipulated in real time with the mouse.
For each operation a set of axes must be specified. For example if X, Y,
and Z are set for a scaling operation, the object will be scaled
proportionally in all three dimensions. If X and Y axes are turned off,
then scaling operation will affect only Z axes and the object will be
stretched or squeezed along this axis, while the dimensions along X and Y
will not change.
There are two options for setting the coordinate system in which Object
Manipulation commands operate: World coordinate system (global) and Object
coordinate system (local).
World coordinate system is associated with the global 3D space the user
looks at. You can imagine it as three orthogonal vectors radiating from the
center o the ground plane defining the workspace. X points down one axis of
the ground plane, Y points down the other axis and Z points up through the
ground plane. If the user selects, for example, translation along only the
X axis then the object will move in parallel with one side of the grid and
this will not change even if the user rotates the object in different
direction.
The Object coordinate system is local to the object itself. If the object
is rotated, then its coordinate system will be rotated with it. In this
way, for example, robot's local X axis always points in front of the robot
regardless of the robot's position in the world.
The Object coordinate system forms the basis for the hierarchical
manipulation capability of Caligari. The user creates the hierarchy by
gluing various parts of complex object together. For example the hand and
forearm are glued together, then the new object is glued to upper arm. The
whole arm is glued to the robot's shoulder. At any time any part of the
robot's body can not only be accessed for manipulation, but manipulation
will automatically be performed in local (object) space. Thus, fir the user
selects the robot's arm and then Rot Z, the arm will rotate around the
robot's shoulder. This can be overridden by selecting the world space
(unselect ObjAx).
Gadgets associated with object manipulation are: Pick, Trans, Rot, Scale,
X, Y, Z, and ObjAx.
PICK
Purpose:
To select an object for manipulation.
Procedure:
1. Select the "Pick" function. The navigation menu will disappear, and next
to the Pick gadget, up and down arrows (/\, \/) will appear.
2. Point the cursor at the object which you want to select.
2. Depress left button on the mouse. The new object appears highlighted and
the navigation menu reappears.
Comments:
If no object is selected, object manipulation operations are inactive. If a
new object is selected, the previously active object will be unhighlighted
(drawn in the background color).
The up and down arrows cause the next level of hierarchy to be highlighted.
For example, if a hand is selected and up arrow is depressed, the whole arm
will be selected.
See also "Glue" and "Unglue".
TRANS
Purpose:
To move the object in an arbitrary direction.
Procedure:
1. Select the object using "Pick" if not already selected.
2. Select Trans.
3. Select the combination of X, Y, and Z axes desired.
4. Highlight ObjAx (object based coordinate system) or unhighlight ObjAx
(world based coordinate system).
5. Move the cursor into the world space and hold down the left button to
translate the object in X and Y. Hold down the right button to translate in
Z.
Options:
x - move along x axis
y - move along y axis
z - move along z axis
Note:
The left mouse button controls the x and y axes, the right button controls
the z axis. Motion on the screen is always in the direction of the movement
of the mouse, even when the eye looks at the scene from opposite
directions.
This operation performs differently in object based coordinate system and
in world based coordinate system. most of the time world coordinates will
be preferred.
ROT
Purpose:
To rotate the object around arbitrary axis.
Procedure:
1. Select the object.
2. Select Rot.
2. Select the axis for rotation, X, Y, or Z.
3. Highlight ObjAx (object based coordinate system) or unhighlight ObjAx
(world based coordinate system).
3. Move the cursor into the world space to rotate the object.
Options:
x - move along x axis
y - move along y axis
z - move along z axis
Note:
The object can rotate around only one axis at a time. The left button
rotates at regular speed, the right button rotates slowly for fine
adjustments.
This operation performs differently in object based coordinate system and
in world based coordinate system. most of the time object coordinate system
will be preferred.
SCALE
Purpose:
To change the size or shape of the object.
Procedure:
1. Select the object.
2. Select Scale.
2. Select a combination of axes, X, Y, or Z.
3. Highlight ObjAx (object based coordinate system) or unhighlight ObjAx
(world based coordinate system).
3. Move the cursor into the world space and press left mouse button to
scale the object.
Options:
x - move along x axis
y - move along y axis
z - move along z axis
Note:
Scaling in the world space will shear the shape of an object (deform it)
unless it is aligned with the world axes. Scaling in object space preserved
the perpendicularity of local dimensional axes.
4bc. VIEWS
Caligari supports both Perspective and Orthogonal projections. In both
cases it provides real time response and the interface is identical.
PERSPECTIVE VIEW is most natural for the user because it closely resembles
the world as we see it in everyday life. A characteristic property of
perspective projection is that objects appear smaller as they get further
from the viewpoint.
ORTHOGONAL VIEW does not perform perspective division, consequently objects
doe not change size when they move further from the eyepoint. This view is
good for very precise positioning of objects. There are three orthogonal
views: Top, Left and Front.
Caligari automatically disables operations which can not be perceived
properly in a two dimensional orthogonal view. For example when looking
from above at the scene (Top view) up and down motion of objects (z axis)
is disabled.
TOP
Purpose:
To display the world from above (in X-Y plane).
Procedure:
1. Make sure you are not in top view.
2. Select the top gadget from the navigational menu.
3. Immediately, the world will be shown from above.
Note:
In top view EnCir and P/T are disabled. Also Trans Z is disabled.
Top view (together with other orthogonal views) is well suited for highly
precise positioning of design elements. This can be accomplished by zooming
close to the current object and doing fine adjustments for rotation and
translation of the object.
LEFT
Purpose:
To display the world from the left side (in Z-Y plane)
Procedure:
1. Make sure you are not if left side view.
2. Select the Left gadget from the navigational menu.
3. Immediately, the world will be shown from the left.
Note:
In Left view EnCir and P/T are disabled. Also Trans X is disabled.
Left view (together with other orthogonal views) is well suited for highly
precise positioning of design elements. This can be accomplished by zooming
close to the current object and doing fine adjustments for roataion and
translation of the object.
FRONT
Purpose:
To display the world from front (in X-Z plane).
Procedure:
1. Make sure you are not in front view.
2. Select the Front gadget from the navigational menu.
3. Immediately, the world will be shown from the front.
Note:
In front view EnCir and P/T are disabled. Also Trans Y is disabled.
Front view (together with other orthogonal views) is well suited for highly
precise positioning of design elements. This can be accomplished by zooming
close to the current object and doing fine adjustments for rotation and
translation of the object.
4bd. ERASE
Purpose:
To erase the currently selected (highlighted) object.
Procedure:
1. Select the object to be erased.
2. Select the erase function. The object is erased.
Note:
Erase removes an object without prompting for confirmation and the erased
object can not be retrieved. Erase only works on complete objects, i.e. a
subobject can not be erased.
Erase only removes objects from the workspace. Previously saved objects on
the disk are still available.
UNDO
Purpose:
To undo the previously executed function.
Procedure:
1. After incorrectly editing or altering the dimensions of an object,
select the Undo function.
2. Immediately the last change to the world will be undone.
Note:
The undoable operations are Pick, Trans, Rot, Scale, Move, EnCir, P/T and
Zoom
Only the last performed action can be undone. The last undo can also be
undone.
4c. STATUS
When Status is selected from the Base menu a new menu strip will place
itself just above the existing menu bars and will display and dynamically
update the following information:
Current obj - The name of the currently selected object will be displayed
in this field. If a subobject is selected, the name of the subobject will
be properly displayed.
RTime - Time necessary to render current object. Time is displayed in the
sixtieths of a second.
X, Y, Z - Coordinates of current object in the worldspace. When object is
moved, the coordinates are dynamically updated.
Mem - Amount of available memory.
Eye X, Y, X - Coordinates of the current viewpoint position.
Bank - Rotation of the eye in the screen space. (0 = horizontal)
Status menu is particularly useful for animation purposes because it gives
an exact numerical location of both objects and the viewpoint.
4d. TOOLS
In the navigation menu the objects can be positioned and shaped using
Trans, Rot and Scale. Tool menu on the other hand offers a selection of
tools to create complex objects out of simpler ones.
The Tool menu works in conjunction with the navigational menu. It simply
stacks itself above any existing menus.
Glue/Unglue is a basic tool for combining simpler objects together. For
example several polyhedra can be combined together to form an arm. Two arms
can then be consequently glued to the torso of the robot. Caligari
remembers exactly how the structure of a complex object (such as a robot)
was created. This provides the basis for hierarchical manipulation of
complex objects.
The Extruder is actually a collection of very powerful tools. With it, the
user can draw any 2D shape by hand and sweep it through 3D space to create
a 3D object.
Copy replicates objects. Note that the new copy of the object is in the
same location as the old copy of the object. The user must translate, scale
or rotate the new copy of the object, before the new and old copies of the
object will appear distinct.
4da. Glue
Purpose:
To glue one object to another object. Any number of objects may be glued
together but they must be glued together one at a time.
Procedure:
1. Use the pick function to select one of the objects to be glued together.
The object appears highlighted.
2. If the glue option does not appear on the menu, select the Tools
function and it appears.
3. Select Glue from the tools menu. The rest of the Tools menu disappears.
4. Select a second object to glue to the first object. Both objects now
appear highlighted and now they are combined into one object. The Tools
menu reappears.
Note:
The order in which the objects are glued together is remembered for
hierarchical access. See also, "ObjAx".
Unglue
Purpose:
To separate two objects previously glued together.
Procedure:
1. If Unglue does not appear on the menu, select the Tools function and it
appears.
2. Select an object which is composed of several glued objects.
4. Using Pick and Down arrow select the subobject to be separated from the
main object. It is highlighted in bluish hue. The rest of the complex
object is orange.
3. Select Unglue from the menu. The subobject is highlighted in white,
while the rest of the complex object has background color. The highlighted
subobject is a separate object now.
Comments:
The Unglue command is available only in the Object Design module. Its main
use is reuse of previously designed parts in new constructs. This enables
rapid creation of new designs out of the old ones.
The top subobject in a complex object can not be unglued.
Copy
Purpose:
To create a replica of an object.
Procedure:
1. If Copy does not appear on the menu, select the Tools function and it
appears.
2. Select an object.
3. Select Copy from Tools menu.
4. Newly created object occupies the same space as original.
Note:
Since a copy of the object occupies the same space as original, it is a
good idea to move it a bit to see that there are actually two objects.
4dc. EXTRUDER
The Extruder enables the user to draw any 2D shape by hand and sweep it
through 3D space to create a 3D object.
Upon entering the extruder the screen presents a 2D grid. The user can draw
the shape immediately simply by rubberbanding a line segment and depressing
left button to create a new point.
If grid is selected, new points will be placed only on the intersections of
the background grid. The size of this grid can be set in "Settings".
The bottom of the menu continuously displays the xy coordinates of the
cursor. A new point can also be entered numerically by selecting the X or Y
gadget and typing the coordinates from the keyboard. This is useful for
entering shapes from blueprints with precise, known coordinates.
Undo will remove the last active line segment from the drawn curve, so an
error can be easily corrected. When the shape is finished, the "Close Poly"
gadget must be selected. This automatically closes the polygon by
connecting the first and the last point. Caligari will not allow for
creation of self itnersecting polygons and checks for these continuously as
the polygon is drawn.
After closing the polygon, several new options appear on the menu. User can
save the created polygonal shape, draw a hole inside the polygon, set the
polygons center, edit the polygon, or sweep it in a 3D surface of
revolution.
Fonts can be quickly generated in extruder and saved as polygonal shapes
rather than 3D object.s
There are three options for 3D sweep: Extrude, Cone and Spin. Each
operation can be affected by user selectable settings such as Orientation,
Depth, Auto Sub, Reference and Mouse Grid, # Segments and Angle.
Extrude
Purpose:
To give a thickness to a designed shape.
Procedure:
1. Select Extruder from the Tool menu.
2. Draw or load a 2D shape.
3. Depress "Close Poly" gadget. If desired draw any number of holes inside
the shape.
4. Specify the thickness, orientation and center of the shape.
5. Select Extrude. The program will return to the navigation menu with
newly created 3D object highlighted.
Note:
The relevant settings are Orientation and Depth. There are no restrictions
on number of lines in the shape or the number of holes inside the shape.
Selecting the "Close Poly" gadget will return a "Polygon Invalid" message
if the first and last points can not be connected without intersecting some
other polygon edge. Use the Undo to modify the polygon until it can be
closed.
Cone
Purpose:
To extrude a pyramidal polyhedron with a cross section matching the
designed shape.
Procedure:
1. Select Extruder from the Tool menu.
2. Draw or load a 2D shape.
3. Select the "Close Poly" gadget. If desired draw any number of holes
inside the shape.
4. Specify thickness, orientation and center of the shape.
5. Select Cone. Program will return to the navigation menu with the newly
created 3D object highlighted.
Note:
The relevant settings are Orientation, Depth and Poly Center. There are no
restrictions on number of lines in the shape or number of holes inside the
shape.
Selecting the "Close Poly" gadget will return a "Polygon invalid" message
if the first and last points can not be connected without intersecting some
other polygon edge. Use Undo to modify the polygon until it can be closed.
Spin
Purpose:
To rotate designed shape around any edge or specified axis.
Procedure:
1. Select Extruder from the Tool menu.
2. Draw or load a 2D shape.
3. Select Spin from the Extruder menu.
4. Select an edge of the polygon or draw a line for the rotational axis.
5. Specify # segments and Angle for rotation or use the default values.
6. Select Go. The program will return to the navigation menu with the newly
created 3D object highlighted.
Note:
The relevant settings are orientation and depth. There are no restrictions
on the number of lines in the shape or number of holes inside the shape. If
360 degrees or more of rotational angle is specified, holes inside the
polygon will be eliminated. If a line is drawn for rotational axis, it must
not intersect the polygon.
Selecting the "Close Poly" gadget will return a "Polygon invalid" message
if the first and last points can not be connected without intersecting some
other polygon edge. Use Undo to modify the polygon unit it can be closed.
Load Poly
Purpose:
To load pre-saved shape into the extruder.
Procedure:
1. Select Extruder from the Tool menu.
2. Select "Load Poly" from the Extruder menu.
3. From the menu of available shapes select one and press "Load".
4. The selected shape appears in the extruder for further manipulation.
Note:
Fonts should be saved as 2D polygons. A 3D word can be very quickly
assembled by loading the letters into the extruder and specifying desired
thickness.
Saved Poly
Purpose:
To save a shape just drawn.
Procedure:
1. Select Extruder from the Tool menu.
2. Draw or load a 2D shape.
3. Select "Save Poly". Type a name for the current shape and press "Save".
Note:
It would make sense to save a whole font as a series of 2D shapes for later
use. Also maps should be saved in this form.
Poly Center
Purpose:
To set the center of an object's coordinate system.
Procedure:
1. Select Extruder from the Tool menu.
2. Draw or load a 2D shape.
3. Select "Poly Center". Position the large crosshair cursor and depress
left button.
Note:
If you rotate an object, it will rotate around the center of its coordinate
system.
Config Settings
Purpose:
To adjust the extruder grids.
Procedure:
1. Select Extruder from the Tools menu.
2. Select Settings from the Extruder menu.
3. Set Mouse or Reference grid size from the keyboard or grid X or Y
Scales.
4. Select Use or Save. The program will return to the Extruder manu with
the new configuration settings.
Note:
If "Grid X Scale" or "Grid Y Scale" are selected the extruder will display
horizontal and vertical rules for drawing. While reference grid provides
visual help it is the mouse grid which actually specifies where the polygon
vertex can be placed. Mouse and reference grid do not have to have the same
values.
Extrude Settings
Purpose:
To adjust the extrude settings.
Procedure:
1. Select Settings from the Extruder menu.
2. Select Extrude from the Settings menu.
3. Set Orientation, Depth or Auto Sub.
4. Select Use or Save. The program will return to the Extruder menu with
the new Extrude settings.
Note:
"Auto Sub", if selected, will display the settings automatically each time
when extrude operation is selected. orientation specifies how the object
will appear in the world.
Cone Settings
Purpose:
To adjust the cone settings.
Procedure:
1. Select Settings from the Extruder menu.
2. Select Cone from the Settings menu.
3. Set Orientation, Depth or Auto Sub.
4. Select Use or Save. The program will return to the Extruder menu with
the new Cone settings.
Note:
"Auto Sub", if selected, will dispaly the settings automatically each time
when cone operation is selected.
Spin Settings
Purpose:
To adjust Spin settings.
Procedure:
1. Select Settings from the Extruder menu.
2. Selece Spin from the Settings menu.
3. Set Orientation, # Segments, Total Angle or Auto Sub.
4. Select Use or Save. The program will return to the Extruder menu with
the new Spin settings.
Note:
"Auto Sub", if selected, will display the settings automatically each time
when spin operation is selected.
If # segments is high, object will appear to have smoother surface but the
rendering time will be longer. This will particularly effect the first time
the object is rendered as a solid due to the algorithm Caligari uses for
solid view (BSP tree).
4e. LOAD
The Load menu is accessible from the Base menu. When selected, it replaces
the current menus but leaves the workspace untouched.
The purpose of the Load menu is to display objects available in the current
scene for loading into the workspace.
The Load menu can display the names of up to 55 objects simultaneously in
five columns of eleven rows each. If the current scene contains more
objects, the user can scroll the menu horizontally using the arrows on the
sides of the displayed object names.
The selection of objects from the menu is simple. Place the cursor in the
area where the name of the object you wish to select is displayed and
depress the left mouse button. The object under the cursor will be
highlighted. Now move the cursor around and as it moves the object names
under the cursor are dynamically highlighted. Release the button and newly
selected object appears in the bottom line next to Load gadget.
Selecting Load will load the highlighted object under a different name. To
do this select the "AS" field (next to "Load" fiedl) and type in the name
under which the object will appear in the workspace. For example, you can
load object "ROBOT" as "ROBBY" first time and as "ROBBIE" second time so
you will be able to explicitly recognize one robots from the other.
If an object is loaded into the workspace several times without using the
"AS" option, Caligari automatically assigns a different name to each new
instance of an object. This is done simply by placing an exclamation point
after the name, followed by a number (for example ROBOT!2).
If a new object is created (in the extruder module or from primitives),
Caligari assigns it a default name, optionally followed by number. The
default name is "NoName". The user can change this default name when the
object is saved.
Caligari provides an easy way to exchange objects between different scenes.
Using the "Set Path" command you can load objects into the current scene
from other scenes residing in the same directory, a different directory or
even a different disk.
Selecting "Set Path" will bring up standard file requester displaying the
content of the current directory. A new Scene File or a directory (marked
D) can be selected, enabling the user to brouse through the disks and open
any Scene. After the scene has been selected, "Set Load Path" will display
collection of objects to be loaded from it into the current scene. Note
that current scene itself can only be changed from the main menu (Load
Workspece option).
If the AutoExit gadget has been selected, the Caligari automatically exits
the Load menu, after the object is loaded into the workspace.
4f. SAVE
The Save menu displays the names of all the objects currently in the
workspace, including those just created. Any of the objects can be saved
into the current scene.
The Save menu is similar to the Load menu. Caligari only saves objects into
the current scene, so the Save menu does not have an option for changing
the name of the scene or the path.
The "AS" option allows renaming of objects prior to actual saving. If the
"AS" option is not specified the object will be saved under its current or
default name. If an object with the specified name already exist in the
database, Caligari displays a new menu allowing the user to change the name
under which the object is saved, or overwrite the existing object in the
database with the new one.
4g. PRIMITIVES
Primitives are the basic 3D objects available for instant loading into the
workspace. Because the primitives are used so often, they are represented
by their visual icons rather than by names.
The primitives menu is similar in many ways to the Load menu, but there are
a few differences. In addition to the Load gadget which the user selects to
confirm the choice, there is also an Autoload option which loads the
selected primitive immediately after releasing the left mouse button. This
option is a default to speed up loading of primitives.
Primitives are displayed on the menu in three rows with nine elements each.
When selected, a primitive appears in the workspace in its normalized
position, i.e. (0,0,0) in the worldspace and with the objects local axes
aligned with the world axes.
Even though number of primitives is small, they are very powerful building
blocks for designing a variety of complex shapes. For example a Cube can be
stretched to represent a table top or squeezed to represent one leg of that
table. Gluing primities together creates a variety of design options.
4h. RENDER
At any time in Object Design, a solid rendering of the currently active
object can be obtained by selecting Render from the Base menu.
When an object is rendered for the first time, Caligari needs to do extra
computations to create the data necessary for solid rendering. After that,
however, the user can switch between solid rendering and wireframe
representation quite quickly.
In Render mode all menus are eliminated to provide unimpaired viewing of
the object. You can exit this view by doubleclicking the right button on
the mouse. This will bring up four gadgets on the bottom of the Render
mode: Print Image, Save Image, Color and Exit Render. Using these
functions, the user can now print the image on the printer, save it as an
IFF file, change the color of the object or return to wireframe mode.
Solid view in object design is primarily intended to give the user better
understanding of the geometry of the object. As such it only has one fixed
light source and provides for only diffuse shading. unlike in the scene
module, the user can only shade one object (selected) at the time. Scene
module of course provides for multiple lightsources and diffuse as well as
specular shading of all objects.
Print Image
Purpose:
To obtain hard copy of the current image.
Procedure:
1. Select Render from the Navigation menu.
2. Double click the right mouse button after Image is rendered.
3. Select Print imagge and your image will be printed on the printer
currently selected in Preferenced.
Note:
Make sure that you set correct printer driver from the Preference menu and
that your printer is connected to the computer and turned on.
Save Image
Purpose:
To save an image in IFF format.
Procedure:
1. Selecte "Render" from the Navigation menu.
2. Double click the right mouse button after image is rendered.
3. Select "Save Image".
4. Select "Name" and "Drawer" for the image to be saved in. Select the
"Save as IFF File" gadget.
Note:
Caligari can save images in high or low resolution including overscan
options. An IFF image can be manipulated in variety of programs such as
Deluxe Paint II, etc.
4ha. COLOR
The Color menu enables the user to interactively assign a color attribute
to an object, as well as to change its visual appearance on the screen.
These are two distinct phenomena.
Color attributes are represented by several horizontal color bands
(palettes) just above the color menu (default number is three plus
background and color of the light).
A color attribute can be assigned to an object or subobject by selecting
the "Set To" gadget from the color menu. The currently active color
attribute (palette) is assigned to the selected object. Double clicking on
the "Set To" gadget will also immediately rerender the selected object or
subobject.
Just as in wireframe, the user can select any subobject ty selecting up or
down (/\, \/) with the Pick option. Once the subobject is selected, the
rest of the object is shaded out, highlighting the subobject the user is
coloring.
The visual appearance of the object on the screen can be modified by
namipulating the color palettes. The leftmoust represents the color of the
background, second from the left is the color of the highlights (color
attribute 0). Third band, fourth band and consecutive bands represent in
shaded gradation the appearance of first, second, and consecutive color
attributes.
The color range of each palette can be changed with the three horizontal
sliders on the left side of color menu. The top slider changes the color
(hue), the middle slider color purity (saturation) and bottom slider
changes the intensity (value) of the palette. The number of palettes (color
attributes) can be changed using "+ col" and "- col" gadgets.
The active palette can be selected by positioning the cursor on top of it
and clicking the left mouse button. Clicking the right mouse button on top
of palette and moving the mouse will change the number of shades in the
palette. If the user increases number of shades on any paletter (for
smoother appearing objects colored in this attribute) the number of shades
in the other palettes is automatically reduced. Also, if too many palettes
are added, each of them will have only a few shades. Thus, the user can
trade number of color attributes (palettes) for smoothness of shading.
The appearance of each attribute will be generally different in object and
scene design (and in different scenes), color attribute number, however is
permanently assigned. you can think of it as a "material" the object is
made of. For example, if in object design the car wheels have assigned
attribute one and car body attribute two, then these materials never
change. However if we have two copies of the same car in the scene design,
then one body can be rad and other green (material appearance). Since all
the wheels are of the same material (one) then it can not happen that one
wheel of a car would have a different color from another wheel on the same
car.
4l. ETC
ETC is a submenu of the navigation menu which enables the user to enter
data numerically, and also contains 3D grids and other utility functions.
When selected it replaces current menu configuration with its own menu
display.
From left to right the menu is structured into five distinct groups:
Settings, EYE, OBJ, GRID and various utility functions. This menu is
identical in Object Design and in Scene Composition.
Caligari tries to deemphasize numerical entry of data. It is very
important, particularly in conceptual stage of design to maintain real time
feedback between the hand and the eye, which is impossible when using
keyboard entry. However, there are a number of cases, where the ability to
enter precise numerical date (perhaps from existing blueprint) will enhance
the functionailty of the software.
Settings
Cube
This is a treshold for switching between the full representation of the
object and its bounding cube. It is set in sixtieths of a second, so
default setting of 12 sixtieths is equivalent to five frames per second. If
an object can not be updated five times per second then only its bounding
cube will be shown. This forms the basis of the real time response of
Calligari.
The user can set this threshold to lower values (object will be replaced
with bounding cube sooner - resulting in smoother interaction) or higher
values (object will change into bounding cube later resulting in jerkier
motion of full object). This can be particularly useful if the user has a
faster processor in his computer.
Rulers
These are dynamic rulers which are displayed horizontally (X) or vertically
(Y) on the screen. Reulers help the user to orient himself in the design
space and position objects with higher degree of precision. As the user
moves in design environment the rulers dynamically update.
Both rulers are available in top view, X ruler is available in left or
front view and no rulers are available in the perspective view.
EYE Move
Purpose:
To numerically enter the X, Y, and Z coordinates to move the eye.
Procedure:
1. Select the ETC gadget from the Navigation menu.
2. Select Move from the EYE group.
3. Enter X, Y, and Z values from the keyboard.
4. Select Loc and/or Abs (optional) and then select GO.
Options:
Abs - If selected, interpret the numerical entry in absolute coordinates.
Loc - If selected, interpret the numerical entry in local coordinates.
EYE EnCir
Purpose:
To numerically enter the X, Y, and Z angles with which to encircle the eye
around the selected object.
Procedure:
1. Select the ETC gadget from the Navigation menu.
2. Select Encir from the EYE group.
3. Enter X, Y, and Z angles from the keyboard.
4. Select Abs (options) and then select GO.
Options:
Abs - If selected, interpret the numerical entry in absolute coordinates.
Loc - If selected, interpret the numerical entry in local coordinates.
Note:
Encircle can not be performed in World coordinates.
EYE PTilt
Purpose:
To numerically enter the X, Y, and Z angles to pan or tilt the eye.
Procedure:
1. Select the ETC gadget from the navigation menu.
2. Select PTilt from the EYE group.
3. Enter X, Y, and Z angles from the keyboard.
4. Select Abs (optional) and then select GO.
Options:
Abs - If selected, interpret the numerical entry in absolute coordinates.
Loc - If selected, interpret the numerical entry in local coordinates.
Note:
Pan and tilt can not be performed in World coordinates.
OBJ Trans
Purpose:
To position the object numerically using X, Y, and Z coordinates.
Procedure:
1. Select the ETC gadget from the navigation menu.
2. Select Trans from the OBJ group.
3. Enter X, Y, and Z units from the keyboard.
4. Select Loc and/or Abs (options) and then select GO.
Options:
Abs - If selected, interpret the numerical entry in absolute coordinates.
Loc - If selected, interpret the numerical entry in local coordinates.
OBJ Rot
Purpose:
To rotate the object numerically using X, Y, and Z coordinates.
Procedure:
1. Select the ETC gadget from the navigation menu.
2. Select Rot from the OBJ group.
3. Enter X, Y, and Z, rotational angles from the keyboard.
4. Select Loc and/or Abs (optional) and then select GO.
Options:
Abs - If selected, interpret the numerical entry in absolute coordinates.
Loc - If selected, interpret the numerical entry in local coordinates.
OBJ Scale
Purpose:
To scale the object numerically using X, Y, and Z coordinates.
Procedure:
1. Select the ETC gadget from the navigation menu.
2. Select Scale from the OBJ group.
3. Enter X, Y, and Z scaling values from the keyboard.
4. Select Loc (optional) and then select GO.
Options:
Loc - If selected this will interpret the numerical entry in local
coordinates. Otherwise the entry will be interpreted in world coordinates.
Note:
Object can not be scaled absolutely.
GRID Trans
Purpose:
To define step increment for translation of an object.
Procedure:
1. Select the ETC gadget from the Navigation menu.
2. Select Trans from the Grid group.
3. Enter X, Y, and Z increment values from the keyboard or use default
values.
4. Select Save or Use and then select ON.
Note:
Grid can be turned on selectively with free motion in one or more axes and
step motion in the other axes. Translation grid is a very powerful tool
which permits creation of large regular structures in a matter of seconds.
GRID Rot
Purpose:
To define step increment for rotation of an object.
Procedure:
1. Select the ETC gadget from the Navigation menu.
2. Select Rot from the Grid group.
3. Enter X, Y, and Z angular increments from the keyboard or use default
values.
4. Select Save or Use and then select ON.
Note:
Grid can be turned on selectively with free motion in one or more axes and
step motion in the other axes. Rotational grid enables fast rotation of an
object in regular increments (45-90 degrees).
GRID Scale
Purpose:
To define step increment for object scaling.
Procedure:
1. Select the ETC gadget from the Navigation menu.
2. Select Scale from the Grid group.
3. Enter X, Y, and Z increment values from the keyboard.
4. Select Save or Use and then select ON.
Note:
Grid can be turned on selectively with free motion in one or more axes and
step motion in the other axes.
GRID Rot
Purpose:
To define step increment for rotation of an object.
Procedure:
1. Select the ETC gadget from the Navigation menu.
2. Select Rot from the Grid group.
3. Enter X, Y, and Z increment values from the keyboard or use default
values.
4. Select Save or Use and then select ON.
Note:
Grid can be turned on selectively with free motion in one or more axes and
step motion in the other axes. Rotational grid enables fast rotation of an
object in regular increments (45-90 degrees).
Utility Functions
Purpose:
This gadget will align the object's axes with world axes.
Center:
This gadget will position the object at (0, 0, 0) in world coordinates.
Find:
This gadget will position the eye so that the current object will appear in
the center of the screen (handy for lost objects).
Level:
This gadget will align the eye horizontally.
5. SCENE COMPOSITION
The Scene Composition module enables the user to build a complex scene out
of the objects created (and saved) in Object Design module. It also
provides for assigning the surface properties to the objects and lighting
the scene with multiple light sources.
Caligari enters the Scene Composition module with the Base menu and
Navigation menu present. The workspace is viewed in perspective with the
Encircle (EnCir) function active and the X-Y coordinate axes selected, much
like Object Design, unless a different configuration of the scene had been
explicitly set. The selection of a function is indicated by an amber
highlight of that function.
In the Scene Composition module the objects can not be modified but they
may be moved, rotated and scaled. Hierarchical access is disabled in this
module. If the user wants to edit an object, he must return to the object
module to do so.
In order to fully utilize the Scene module it is important to realize that
when an object is loaded, unlike in object design it does not explicitly
load its geometrical data, instead it only has a pointer to it. Also each
object has data for appearance attributes and matrix for placement in the
world, rotation and scale.
Thus, if several copies of the same car are loaded into the scene, each can
have its own color, placement (translation), rotation and scale, but they
all share the same set of vertices and polyhedra hierarchy. This has two
advantages: memory is preserved, so a very complex scene (using many
instances of the same object with different scale and rotation factors) can
be built, and secondly time is saved since the compilation process
performed on geometrical data for first time solid view rendering is
performed only once for all instances of the object.
On the other hand if several instances of the same object are loaded in the
scene and original object is modified, then upon entering the scene all the
instances will be modified too. If the user wants two robots in the scene
and one has arm pointing up while the other has arm pointing down, two
copies of the robot must be created in the object design and named
differently.
What all of this means for a design process is following: If you can, use
the same object many times in the scene (a building colored, scaled and
rotated to appear as several different buildings). Also it makes sense to
use smaller objects since the compilation time is much shorter for smaller
objects.
5a. BASE MENU
The Base menu is always present on the bottom of the screen both in Object
Design and Scene Composition. It can be made invisible (along with other
menus) by selecting its close gadget. It can be made visible again by
clicking the mouse with the cursor positioned all the way at the top of the
screen.
The arrangement of gadgets in the base menu is slightly different from the
Object Design:
NAV STATUS TOOLS LOAD SAVE RENDER OBJDES MAIN
These are the major functional blocks in Caligari. When selected, some of
them activate additional menu strips, some replace existing menus, and some
open completely new screend.
NAV - Navigation is central part of Caligari's interface. it enables the
user move in 3D environment and manipulate objects in it.
STATUS - Displays numerical data about current scene.
TOOLS - Contains SCRIPT, LIGHTS and COPY functions.
LOAD - Displays a menu for loading objects into the current scene.
SAVE - Permits saving the current scene under a user selected name.
RENDER - Displays the current scene in solid view (in color).
OBJDES - Exits the Scene Composition module and enters Objecet Design.
MAIN - Exits Scene Composition into the Main menu.
Both Navigation and Status menus are identical to Object Design. The Tools
menu, however, is different.
5b. TOOLS
The Tools menu works in conjunction with the Navigation menu. It simply
stacks itself above existing menus.
There are three tools available: Script, Lights and Copy. Script will be
explained thoroughly in the next chapter. Let us look now at the other two.
Copy
Purpose:
To create a replica of an object.
Procedure:
1. Select an object.
2. Select Copy from tools menu.
3. The newly created object occupies the same space as original.
Note:
Since copy of the object occupies the same space as original it is good
idea to move it a bit to see that there are actually two objects.
Copy operation in Scene is actually slightly different from that in Object
Design. It does not create separate data for each new object, rather it
points to original object stored in the database and it creates only visual
instance of new object (new translation, rotation, scale, color, etc.).
This saves a lot of memory, particularly if you create a large scene with
many objects.
5ba. Lights
The purpose of this tool is to enable the user to place several light
sources in the designated scene to create desired lighting for solid view
of the scene. Caligari allows for unlimited number of light sources,
however since it produces flat (faceted) shading, actual number of lights
should not be too high since too many lights would simply cancel each
other.
Another thing to remember is that even the smallest and most ambient light
will produce specular highlight on a specular object. Too many highlights
will not look realistic on a flat shaded object. On the other hand, clever
use of lights together with specular objects can produce very attractive
looking scenes, particularly in motion.
Procedure:
1. Select Lights from tools menu.
2. Set x, y, z intensity. SoftSize of the current light.
3. Press ">" to change settings for other lights. Use "Add Light" or
"Delete" to change number of lights.
4. Select "Load Settings", "Exit Lights" and "Render" to see how the
current light setting illuminates the scene.
Note:
Caligari provides for an unlimited number of lights in the scene. Each
light can be assigned several attributes:
Number - This simply numbers the lights for easy access.
Position - This is a set of X, Y, and Z coordinates with full floating
point precision.
Intensity - This can be any number. Only relative intensities are
meaningful since Caligari automatically compresses specified intensities
into the available contrast of Amiga color space. Thus if there are two
lights, relative intensities (1, 10) and (0.1,1) would produce the same
lighting of the scene.
SoftSize - 0 = point light source, all polygons not facing the light are
completely dark.
1 = planar light source, only polygons facing exactly
opposite direction from the light are completely dark.
1000 = ambient light, polygons in any direction are
illuminated with the same intensity.
5c. Load
Purpose:
To load new objects into the current scene.
Procedure:
1. Select Load from the Base menu.
2. Select an object, use "AS" option to rename it (optional), then select
Load.
4. The newly loaded object appears in the scene.
5. Select Quit to get back to the Navigation menu.
Note:
The Load menu is similar to that of the one in Object Design. The user,
however can not change the name of the scene or the path from this menu. To
do this, the user must exit the scene and enter Main menu. From there a new
scene can be loaded into the program.
In Caligari each scene file contains all the objects saved in the scene
environment.
Save
Purpose:
To save the current scene.
Procedure:
1. Select Save from the Base menu.
2. Set the path and the file in which the current scene should be saved.
3. Select Save. Caligari will save the scene and return to the Navigation
menu.
Note:
Caligari prompts the user to save current scene every time the user wants
to exit Scene Composition and the scene has been changed.
In Caligari each scene file contains all the objects saved in the scene
environment.
5d. RENDER
At any time in Scene Composition a solid view of the scene can be obtained
by selecting Render from the Base menu. Rendering capabilities in Scene
Composition are more extensive than in the Object Design module.
The key to impressive looking images is clever use of multiple lights,
available palettes and diffuse and specular coefficients assigned to
various objects. For example a sphere which has assigned red palette will
look quite different rendered with low diffuse coefficient and specular
highlight, then the same sphere rendered with high diffuse coefficient and
without the specular highlight.
When a scene is rendered first time, Caligari needs to do extra
computations to create the data necessary for solid rendering of a scene.
After that the user can switch between solid view and wireframe
representation quite quickly.
After the Render gadget is selected, the screen changes to solid view. All
menus are eliminated to provide an unimpeded view of the object. You can
exit this view by double clicking the right button on the mouse. This will
bring up five gadgets on the bottom of the solid view: Print Image, Save
Image, Color, Setup and Exit Render.
The user can not print the image on the printer, save it as an IFF file,
change the color of objects, change the resolution or exit back to
wireframe view.
Print Image
Purpose:
To obtain hard copy of the current image.
Procedure:
1. Select Render from the Navigation menu.
2. Double click the right mouse button after the image is rendered.
3. Select Print image and your image will be printed on the printer
currently selected in Preferences.
Note:
Works identically in the scene and object design.
Save Image
Purpose:
To save an image in IFF format.
Procedure:
1. Select Render from the Navigation menu.
2. Double click the right mouse button after the image is rendered.
3. Select Save Image.
4. Select Name and Drawer for the image to be saved in. Select "Save as IFF
File" gadget.
Note:
Caligari can save images in low or high resolution including overscan
options. An IFF image can be manipulated in variety of programs such as
Deluxe Paint II etx. Works identically in the scene and object design.
5da. COLOR
Color attributes are assigned to each object in Object Design module. In
Scene Composition, the color attributes can not be changed. Their
appearance however, is fully controllable from the scene.
For example a car will have assigned color attribute one for the wheels and
color attribute two for the body in the Object Design. In Scene module the
user can load the same car under three different names. Then he can set the
appearance of color attribute one to gray and color attribute two to light
blue for car. After that he can set the color attribute two to dark red for
car2 and shiny blue for car3. Thus, all the cars will have grey wheels but
one will have light blue body, the second will have dark red body and the
third car's body will be blue and shiny.
There are three appearance attributes that can be assigned to each color
attribute for selected object: hue (Color), intensity (Diffuseness) and
shininess (Specularity).
Hue can be assigned to the object simply by selecting one of the color
bands (palettes). For selected hue, intensity and shininess can be
specified with horizontal sliders for diffuseness and Specularity.
Just like in Object Design the number of palettes as well as distribution
of number of shades for each can be easily changed. In addition hue,
saturation and value sliders allow the user to achieve harmonious color
scheme for the scene. All of these settings are part of the scene and are
saved together with it.
Color
Purpose:
To set hue, intensity and shininess to a color attribute of an object.
Procedure:
1. Select Color after double clicking in solid view.
2. Select an object from the scene. The rest of the scene is shaded out.
3. Select material # (color attribute) of current object to be changed by
typing from the keyboard.
4. Set Diffuse and specular coefficients. Select active hue fromthe
palettes above the menu.
5. Depress the "Set Material" gadget to assign new values to the attribute.
If you double click on the gadget, the object will also be rerendered.
Note:
Alll the palette functions are also available. You can increase the number
of colors, and change the hue, saturation, and value of any color (palette)
interactively.
It is important to remember how many color attributes were assigned to an
object in Object Design. Only these attributes can be manipulated in the
scene module.
Setup
Purpose:
To change the resolution of the solid view display.
Procedure:
1. Select Setup after double clicking in solid view.
2. Select Hires/Lores and/or UnderScan/OverScan options.
3. Select Render to see the scene rerendered with new resolution values.
Options:
Hires/Lores switches between high and low resolution. In the lower
resolution more colors are available.
UnderScan/OverScan switches between 736x482 (Overscan) and 600x400
(UnderScan) in high resolution and 362x482 (Overscan) and 320x400
(UnderScan) in low resolution. Rendering process is somewhat faster in
Underscan.
6. SCRIPT
After the user builds the scene and assigns lights and colors to it, he or
she can write a script to animate the scene.
While the script itself has to be written outside of Caligari in a word
processor, it can be compiled, debugged, previewed in real time and finally
output to videotape, all interactively, from inside Caligari.
The script can be written on any Amiga text editor. each line of the script
contains one animation command. Typically, the script will consist of a few
"paragraphs" - blocks of commands, each starting with a GO command followed
by set of commands to be executed in particular frame range (as defined by
the previous GO). After the script is written, named and saved, it can be
loaded into Caligari.
Following simple script will create two seconds of animation. In this
script car will be translated relatively from its current position 50 units
along the Y axis (perhaps along the street) and base will be rotated 360
degrees. While this is happening camera closes up on the scene.
GO 60
MOVE car 0 50 0
ROTATE base 0 0 360
MOVE EYE 0 0 100
Typically, the user will first write the sdript, then he will compile it
and preview it. Visual feedback will enable the user to edit the script
again, compile it and preview it again. After few Edit, Compile and Preview
cycles the script will be ready for final full color rendering onto
videotape.
The Caligari script animation is case insensitive to commands and to the EYE,
but it is case sensitive to the names of objects.
The semi-color ";" may be used anywhere on a script line to indicate that
the remainder of the line is a comment or is to be ignored. Blank lines are
also ignored.
Caligari executes a "GO 1" command automatically at the beginning of each
script. At the end of each script a "PURGE" command is also automatically
executed.
Compile
Purpose:
To prepare the script for real time preview.
Procedure:
1. Select Script from the Tools menu in the scene.
2. Enter the name of your script (using the keyboard) on the bottom line in
script menu.
3. Enter a path (if script is not in the current directory).
4. Select Compile.
5. The script will be rendered in wireframe on a frame by frame basis.
After the last frame is drawn, the script is ready for real time preview.
Note:
Acutal rendering of the script during the compilation process is
substantially slower than in preview (non-real time).
Preview
Purpose:
To see the script choreography in real time.
Procedure:
1. Select Script from the Tools menu in the scene and compile it.
2. Select Preview.
3. Script will be rendered in wireframe in real time to enable the user see
the actual motion of animated objects.
Note:
Real time in video means 30 frames/sec. Caligari's preview will typically
be less than that, particularly on large scenes. It is advisable to use the
"Rate" command in a script to render only every fifth (or tenth) frame of
the script for preview. Also for preview very complex objects can be
temporarily replaced with a simpler representation of the same object.
Debug
Purpose:
To find syntactic errors in the script.
Procedure:
1. Select Script from the Tools menu in the scene.
2. Enter the name of your script (using the keyboard) on the bottom line in
script menu.
3. Enter a path (if script is not in the current directory).
4. Select Debug.
5. Caligari will display each command as it parses it. If an error is
found, the user is notified with an error message.
Render
Purpose:
To render the frames of the script in full color and save them onto
videotape.
Procedure:
1. Select Script from the Tools menu in the scene.
2. Enter the name of your script (using the keyboard) on the bottom line in
script menu.
3. Enter a path (if script is not in the current directory).
4. Turn on and activate the VTR and the Single Frame Controller. Make sure
all calbes are properly connected.
4. Select Render.
5. Script will be rendered in full color and recorded to the VTR using
SMPTE or Microlock time code.
Note:
Cabling may differ for different VTR's and Single Frame Controllers. See
instructions for your controller for details.
6a. SCRIPT SYNTAX
Move
Purpose:
To move an object or eye relative to its current position.
Syntax:
MOVE {object | EYE } x y z [t]
Options:
Object - name of the object to be translated
EYE - eye will be translated
x, y, z - spatial increments to be added to current position.
t - number of frames (optional)
Example:
MOVE car 0 100 0 20
MOVE EYE 20 30 10
Description:
The Move command will translate the specified object or the eye relative to
its current position over the number of frames specified in the "t"
parameter. If the frame count is not specified, then the MOVE will e
executed over number of frames specified in the preceding GO command.
Amove
Purpose:
To move an object or the eye absolutely to a given point in space.
Syntax:
AMOVE {object | EYE } x y z [t]
Options:
Object - name of the object to be translated
EYE - eye will be translated
x, y, z - world coordinates where the object or eye will be moved.
t - number of frames (optional)
Example:
AMOVE car 110 100 0
AMOVE EYE 0 0 200 10
Description:
Absolute move will translate the specified object or eye from its current
position over the number of frames specified in the "t" parameter to the
world coordinates specified. If the frame count is not specified, then
AMOVE will be executed over the number of frames specified in the
precediang GO command.
Scale
Purpose:
To change the size of an object.
Syntax:
SCALE object x y z [t]
Options:
Object - name of the object to be translated
x, y, z - size increments.
t - number of frames (optional)
Example:
SCALE car 1 1 10 20
Description:
Scale command will scale an object over a number of frames. If the frame
count is not specified, then SCALE will be executed over the number of
frames specified in the preceding GO command.
Rotate
Purpose:
To rotate an object or eye relatively.
Syntax:
ROTATE {object | EYE } x y z [t]
Options:
Object - name of the object to be translated
EYE - eye will be rotated
x, y, z - angular increments for rotation.
t - number of frames (optional)
Example:
ROTATE car 0 90 0 20
ROTATE EYE 720 0 0
Description:
If more than 360 degree increment is specified, object will rotate around
the specified axis maore than one time. If the frame count is not
specified, then ROTATE will be executed over number of frames specified in
the preceding GO command.
Arotate
Purpose:
To rotate an object or eye around a specified axis.
Syntax:
AROTATE {ojbect | EYE } angle x1 y1 z2 y2 z2 [t]
Options:
object - name of the object to be rotated
EYE - eye will be rotated
x1, y1, z1 - first point defining the rotational axis
t - number of frames (optional)
Example:
AROTATE car 360 0 90 0 20
Description:
This command enables objects to orbit on arc in 3D space. If the frame
count is not specified, then AROTATE will be executed over number of frames
specified in the preceding GO command.
Lookat
Purpose:
To enable the eye to follow an object.
Syntax:
LOOTAT object [t]
Options:
object - name of the object for eye to follow
t - number of frames (optional)
Example:
LOOKAT car 20
Note:
This command enables to steer the eye to follow an object. It is
particularly useful with invisible objects.
Visible
Purpose:
To make an object appear again.
Syntax:
VISIBLE object
Options:
object - name of the object to be made visible
Example:
VISIBLE car
Description:
Objects are visible as a default. VISIBLE command is useful for special
effects. (See INVISIBLE).
Invisible
Purpose:
To make an object disappear for part of the animation.
Syntax:
INVISIBLE object
Options:
Object - name of the object to be made visible
Example:
INVISIBLE car
Description:
A small tetrahydron can be made invisible and then LOOKAT command can guide
the motion of an eye. Alternating visibility of objects under the script
control can create interesting animation effects. (See VISIBLE).
Pause
Purpose:
To do nothing for a few frames.
Syntax:
PAUSE t
Options:
t - number of frames
Example:
PAUSE 20
Description:
Scene will stay unchanged for a number of frames.
Skip
Purpose:
To speed up editing process by not previewing already finished parts of
script.
Syntax:
SKIP t
Options:
t - number of frames
Example:
SKIP 45
Note:
Program will execute all commands specified in the script but will not
render frames affected by Skip command.
GO
Purpose:
To execute next few frames of a script.
Syntax:
GO t
Options:
t - number of frames
Example:
GO 60
Note:
GO works in prefix notation, i.e. It effects commands after its occurrence.
Also, GO specifies the default number of frames for all subsequent commands
with optional "t" parameters.
Rate
Purpose:
To change overall speed of script execution.
Syntax:
RATE F
Options:
F - a floating point factor by which to scale time
Example:
RATE 2
Will create half as many frames for coarser but faster motion.
RATE .5
Will create twice as many frames for finer and slower motion.
Purge
Purpose:
To clear all ongoing actions in the script.
Syntax:
PURGE
Description:
This command will prevent all unexpired commands from executing.
;
Purpose:
To insert comments into the script.
Example:
MOVE EYE 0 0 10 ;end of first section
; Car starts to accelerate
MOVE car 0 20 0 10
Note:
Comments can be placed anywhere after the ";" symbol.
Installation and backup of your Caligari distribution disk:
You should make a backup of your distribution disk before doing anything
else. Write-protect your disk, if it is not already write-protected, by
moving the plastic slider near the disk label so that the little square
hole is open. Turn on your Amiga, and insert your Caligari disk into the
Amiga when it prompts you for a Workbench disk. When the Workbench is
loaded, click once on the Caligari disk icon with the left mouse button.
Now hold down the right mouse button, slide up to the "Workbench" menu
title at the top left corner of the screen, and pull the menu down,
releasing the right mouse button over the "Duplicate" menu item. Have ready
a blank 3.5" disk which is not write-protected, and follow the system
requests to insert the "To" and "From" disks.
Place the Caligari distribution disk in a safe place away from heat, light
and magnetic fields. You will need this disk for making new Caligari
working disks in case errors develop on your working disks. You will also
need to return this disk when requesting upgrades to new versions of
Caligari.
You should also backup your working disks frequently to prevent data loss
due to deteriorating media, system crash, operator error, or software
malfunction. The importance of backups cannot be overstressed. Do them
regularly, whenever you have done more work than you would care to redo.
Running Caligari on an Amiga 1000:
Caligari is ready to run on the Amiga 1000 as distributed. You must have at
least 1Mb of memory to run Caligari. Note, that Caligari runs quite well on
a one drive system. if you wish to have the date and time of your files
recorded correctly, use the Set-Date project in the System drawer to set
the date. Make sure you are working with a copy of your Caligari disk, not
the original disk.
Running Caligari on an Amiga 500 or an Amiga 2000:
The Caligari disk can easily be customized for better performance on a 500
or 2000. Make sure you are working with a copy of your Caligari
distribution disk. Simply open the System drawer and double-click on the
Boot-2000/500 project. This will change the Startup-Sequence file in the S
directory (not visible from the Workbench), so that the date is set
correctly, and so that Caligari uses the fastest memory in the system
whenever possible. Note that you can revert to a 1000 boot sequence by
double-clicking the Boot-1000 project.
Amiga 500 owners should note that they will need at least 1 Mb of memory to
run Caligari, but that Caligari will run quite nicely on a one drive
system.
Installing Caligari on a hard drive:
Because of the large number of possible configurations, and because
installation is largely a matter of personal preference, we have not yet
attempted to provide a hard disk installation program for Caligari. It
should be sufficient to copy Caligari and the Caldata drawer onto your hard
drive, and add a line to your Startup-Sequence which such as:
Assign CalDate: dh0:CalData
If you experience any problems, use a text editor to examine the various
versions of Startup-Sequence in the Caligari:S directory, and compare them
with your Startup-Sequence. Also make sure that all the library files
Caligari needs are in the logical directory LIBS:
Because Caligari is still in the pre-release stage in its development, it
is recommended that you save your scenes to RAM:, to floppy, or to a
scratch partition on your hard drive. While we are making every effort to
make Caligari reliable and stable, we recognize that bugs inevitably exist
in early versions of software. Should an error occur while Caligari is
writing a file, you mave have to reformat the medium before AmigaDos will
recognize it. For this reason we do not recommend saving to heavily used
hard disk partitions. Optimum performance can be achieved by saving the
scenes to RAM:, and then copying the files to hard disk or floppy for
archiving and backup.
End.